struct TreeNode<'a> {  
    value: &'a str,  
    left: Option<Box<TreeNode<'a>>>,  
    // TODO: 添加 right 字段  
    right: Option<Box<TreeNode<'a>>>,   // 1. 补全右子树字段
}  

impl<'a> TreeNode<'a> {  
    fn new(value: &'a str) -> Self {  
        TreeNode { value, left: None, right: None }  
    }  
}  

#[test]  
fn test_tree_lifetime() {  
    let root;   // 3. 添加下划线消除未使用警告
    {  
        let s = "hello".to_string();  
        root = TreeNode::new(&s); // 应编译失败    // 2. 该行应触发编译错误
    }  
    // 此处尝试访问会触发E0505
    // println!("{}", _root.value); 
}  

// 添加main函数
fn main() {
    let valid_str = "valid";
    let _valid_node = TreeNode::new(valid_str); // 4. 合法生命周期
    println!("Valid node value: {}", _valid_node.value);
}